home *** CD-ROM | disk | FTP | other *** search
- /* Install: */
- /* */
- /* is used to install the REXX PLUS Compiler. It prompts the user */
- /* as to the install options wanted and installs the product as */
- /* requested. */
-
- /* $VER: RexxPlusInstall 1.27 (03.02.92) */
- signal on error
- signal on syntax
- trace o
- address command
- t = 'Replace'
- in.t = 'in'
- t = 'Copy'
- in.t = 'to'
- call addlib("rexxsupport.library",0,-30,0)
-
- continue = 0
- visible = '9b2070'x
- invisible = '9b302070'x
- if (checklib("rexxsupport.library 999 999"))
- then call addlib("rexxsupport.library",0,-30,0)
- if (checklib("rexxarplib.library 999 999"))
- then call addlib("rexxarplib.library",0,-30,0)
-
- arplib = pos('rexxarplib.library',show('l')) ~= 0
- suplib = pos('rexxsupport.library',show('l')) ~= 0
-
- call close(STDIN)
- call close(STDOUT)
- call open(STDIN,'*','r')
- call open(STDOUT,'*','w')
-
- 'RexxPlus:checklib >ram:work dos.library'
- call open('work','ram:work','r')
- line = readln('work')
- call close('work')
- parse var line ver20 .
- if (ver20 > 36)
- then do
- say
- ver20 = 1 /* 2.0 opsys */
- do while cnt ~= 2 & cnt ~= 4 & abbrev('QUIT',cnt,1) = 0
- say 'Enter number of colors on the screen. (2, 4, Quit)?'
- parse upper pull cnt .
- end
- if abbrev(cnt,'QUIT',1)
- then signal rexxexit
- else if cnt = 2
- then do
- forground0 = '9b'x||'0;31;40m'||'9b'x||'3;31;40m'
- forground1 = '9b'x||'0;31;40m'||'9b'x||'1;31;40m'
- forground2 = '9b'x||'0;31;40m'
- forground3 = '9b'x||'0;31;40m'||'9b'x||'3;31;40m'
- end
- else do
- forground0 = '9b'x||'0;30;40m'
- forground1 = '9b'x||'0;31;40m'
- forground2 = '9b'x||'0;32;40m'
- forground3 = '9b'x||'0;33;40m'
- end
- end
- else do
- ver20 = 0 /* 1.3 opsys */
- forground0 = '9b'x||'0;30;40m'
- forground1 = '9b'x||'0;31;40m'
- forground2 = '9b'x||'0;32;40m'
- forground3 = '9b'x||'0;33;40m'
- end
-
- say
- say
-
- if ~(checklib("rexxplslib.library 1 27"))
- then if ~(userbool("Re-install same release of REXX PLUS?"))
- then signal rexxexit
-
- if (userbool("Copy Dates from install disk?"))
- then clone = 'CLONE'
- else clone = ''
-
- if suplib
- then do
- workdir = showlist('A','WORK')
- makedir = showlist('A','REXX')
- rxdir = showdir('SYS:','D')
- rxdir = upper(rxdir)
- if (find('REXX',rxdir) ~= 0)
- then rxdir = 'SYS:REXX'
- else do
- if workdir
- then do
- rxdir = showdir('WORK:','D')
- rxdir = upper(rxdir)
- if (find('REXX',rxdir) ~= 0)
- then rxdir = 'WORK:REXX'
- else rxdir = ''
- end
- else rxdir = ''
- end
-
- makedir = showlist('A','RPDIR')
- rpdir = showdir('SYS:','D')
- rpdir = upper(rpdir)
- if (find('RPDIR',rpdir) ~= 0)
- then rpdir = 'SYS:RPDIR'
- else do
- rpdir = 'SYS:RPDIR'
- if workdir
- then do
- rpdir = showdir('WORK:','D')
- rpdir = upper(rpdir)
- if (find('RPDIR',rpdir) ~= 0)
- then rpdir = 'WORK:RPDIR'
- else rpdir = 'WORK:RPDIR'
- end
- end
- end
- else do
- rxdir = 'SYS:REXX'
- rpdir = 'SYS:RPDIR'
- makedir = 0
- workdir = 0
- end
-
- if ~(exists(rpdir))
- then do
- if (userbool("Make Directory" rpdir"?"))
- then do
- 'MAKEDIR' rpdir
- say 'Directory' rpdir 'Made.'
- end
- else
- if (userbool("Use Some other name?"))
- then do
- rpdir = uservalue("Enter the name of the Directory")
- if ~(exists(rpdir))
- then 'MAKEDIR' rpdir
- say 'Directory' rpdir 'Made.'
- end
- end
-
-
- rpcmd = ''
- if (userbool("Install Compiler Commands (REXXPLUS, RPStart, RPHi)?"))
- then do
- rpinfo = userbool("Install REXX PLUS Icons?"||,
- '0a'x||" (small icons will be installed to same location as commands)")
-
- if (userbool("Install Compiler Commands to C:?"))
- then do
- rpcmd = 'C:'
- end
- else do
- rpcmd = uservalue("Enter path to install REXX PLUS Commands")
-
- if (right(rpcmd,1) ~= ':') &,
- (right(rpcmd,1) ~= '/')
- then rpcmd = rpcmd'/'
-
- do while ~exists(rpcmd)
- say "Path" rpcmd "does not exist"
- rpcmd = uservalue("Enter path to install REXX PLUS Commands")
- if (right(rpcmd,1) ~= ':') &,
- (right(rpcmd,1) ~= '/')
- then rpcmd = rpcmd'/'
- end
- end
- rpcmd = upper(rpcmd)
-
- if CheckCopy(rpcmd,'RexxPlus')
- then do
- call copyrep("RexxPlus:",rpcmd,'RexxPlus')
- if rpinfo
- then if exists(rpcmd'RexxPlus.info')
- then do
- if (userbool("Replace" rpcmd'RexxPlus.info?'))
- then do
- call copyrep("RexxPlus:",rpcmd,'RexxPlus2.info','RexxPlus.info')
- end
- end
- else do
- call copyrep("RexxPlus:",rpcmd,'RexxPlus2.info','RexxPlus.info')
- end
- end
-
- if ver20
- then do
- if CheckCopy('SYS:WBStartup/','RPStart')
- then do
- rpstart = 'SYS:WBStartup/'
- call copyrep("RexxPlus:c/",rpstart,'RPStart')
- if exists(rpstart'RPStart.info')
- then do
- if (userbool("Replace" rpstart "RPStart.info"))
- then do
- call copyrep("RexxPlus:",rpstart,'RPStart2.info','RPStart.info')
- end
- end
- else do
- call copyrep("RexxPlus:",rpstart,'RPStart2.info','RPStart.info')
- end
- end
- end
-
- if rpstart = 'RPSTART'
- then if CheckCopy(rpcmd,'RPStart')
- then do
- call copyrep("RexxPlus:c/",rpcmd,'RPStart')
- if rpinfo
- then if exists(rpcmd'RPStart.info')
- then do
- if userbool('Replace' rpcmd'RPStart.info?')
- then do
- call copyrep("RexxPlus:",rpcmd,'RPStart2.info','RPStart.info')
- end
- end
- else do
- call copyrep("RexxPlus:",rpcmd,'RPStart2.info','RPStart.info')
- end
- end
-
- if CheckCopy(rpcmd,'RPHi')
- then do
- call copyrep("RexxPlus:c/",rpcmd,'RPHi')
- if rpinfo
- then if exists(rpcmd'RPHi.info')
- then do
- if userbool('Replace' rpcmd'RPHi.info?')
- then do
- call copyrep("RexxPlus:",rpcmd,'RPHi2.info','RPHi.info')
- end
- end
- else do
- call copyrep("RexxPlus:",rpcmd,'RPHi2.info','RPHi.info')
- end
- end
-
- if exists('C:hi')
- then do
- if (userbool("Replace C:HI with RPHi?"))
- then do
- say 'Replacing HI with RPHi.'
- 'COPY RexxPlus:c/RPHi to C:HI' clone
- end
- end
-
- if exists(rxdir'hi')
- then do
- if (userbool("Replace' rxdir'HI with RPHi?"))
- then do
- say 'Replacing HI with RPHi.'
- 'COPY RexxPlus:c/RPHi to' rexx'HI' clone
- end
- end
-
- if exists(rpcmd'hi') & rpcmd ~= 'C:'
- then do
- if (userbool("Replace "rpcmd"HI with RPHi?"))
- then do
- say 'Replacing HI with RPHi.'
- 'COPY RexxPlus:c/RPHi to 'rpcmd'HI' clone
- end
- end
- end
-
- if (userbool("Install BLink?"))
- then do
- if CheckCopy('C:','BLink')
- then do
- blcmd = 'C:'
- call copyrep("RexxPlus:Public/c/",blcmd,'BLink')
- end
- else do
- blcmd = uservalue("Enter path to install BLink")
-
- if (right(blcmd,1) ~= ':') &,
- (right(blcmd,1) ~= '/')
- then blcmd = blcmd'/'
-
- do while ~exists(blcmd)
- say "Path" blcmd "does not exist"
- rpcmd = uservalue("Enter path to install BLink")
- if (right(blcmd,1) ~= ':') &,
- (right(blcmd,1) ~= '/')
- then blcmd = blcmd'/'
- end
- call copyrep("RexxPlus:Public/c/",blcmd,'BLink')
- end
-
- end
-
- libsdir = 'LIBS:'
- if (userbool("Install rexxplslib.library?"))
- then do
- if CheckCopy(libsdir,'rexxplslib.library')
- then do
- libsdir = 'LIBS:'
- call copyrep("RexxPlus:libs/",libsdir,'rexxplslib.library')
- end
- else
- if (userbool("Copy rexxplslib.library to Another Directory?"))
- then do
- libsdir = uservalue("Enter the name of the Directory")
- if right(libsdir,1) ~= ':' &,
- right(libsdir,1) ~= '/'
- then libsdir = libsdir'/'
-
- if exists(libsdir)
- then do
- call copyrep("RexxPlus:libs/",libsdir,'rexxplslib.library')
- end
- end
- end
-
- libdir = 'LIB:'
-
- libpath = 0
- if suplib
- then do
- if workdir
- then libdir = 'WORK:LIB'
- else libdir = 'SYS:LIB'
- if showlist('A','LIB') then libdir = 'LIB:'
- if libdir ~= 'LIB:'
- then do
- if (userbool("Create directory for object library?"))
- then do
- wrkdir = uservalue("Enter Directory name to create or return for '"libdir"'")
- if wrkdir ~= ''
- then libdir = wrkdir
- if right(libdir,1) = ':' | right(libdir,1) = '/'
- then do
- t = right(libdir,1);
- libdir = left(libdir,length(libdir)-1)
- end
- else t = '/'
- libpath = 1
- if ~(exists(libdir))
- then 'MAKEDIR' libdir
- libdir = libdir||t
- end
- end
- end
-
- if exists(libdir'rexxplus.lib')
- then do
- copy = 'Replace'
- copyc = 'Replac'
- end
- else do
- copy = 'Copy'
- copyc = 'Copy'
- end
-
- if (userbool("Install Object library 'RexxPlus.lib'?"))
- then do
- if CheckCopy(libdir,'RexxPlus.lib')
- then do
- call copyrep("RexxPlus:lib/",libdir,'rexxplus.lib')
- end
- else
- if (userbool( "Copy rexxplus.lib to Another Directory?"))
- then do
- libdir = uservalue("Enter the name of the Directory")
- if right(libdir,1) ~= ':' &,
- right(libdir,1) ~= '/'
- then libdir = libdir'/'
-
- if exists(libdir)
- then do
- call copyrep("RexxPlus:lib/",libdir,'rexxplus.lib')
- end
- end
- end
-
- if (userbool("Copy Support Libraries to "libsdir"?"||,
- '0a'x||" arp.library"||,
- '0a'x||" rexxplsextnd.library"||,
- '0a'x||" rexxmathlib.library"||,
- '0a'x||" rexxarplib.library"||,
- '0a'x||" disreq.library"||,
- '0a'x||" rexxapp.library"||,
- '0a'x||" rx_intui.library"||,
- '0a'x||" screenshare.library"))
- then do
-
- libc = 0
- if (checklib("rexxplsextnd.library 1 27"))
- then do
- libc = libc+1
- if (userbool(copy "rexxplsextnd.library (release 1.27)" in.copy libsdir"?"))
- then do
- call copyrep("RexxPlus:libs/",libsdir,'rexxplsextnd.library')
- end
- end
-
- if (checklib("rexxmathlib.library 1 31"))
- then do
- libc = libc+1
- if (userbool(copy "rexxmathlib.library (release 1.31)" in.copy libsdir"?"))
- then do
- call copyrep("RexxPlus:Public/libs/",libsdir,'rexxmathlib.library')
- end
- end
-
- call checklib("exec.library 999 999")
- vers = ver2
- if (checklib("arp.library 39 1") & vers <= 33)
- then do
- libc = libc+1
- if (userbool(copy "arp.library (release 39.1)" in.copy libsdir"?"))
- then do
- call copyrep("RexxPlus:Public/libs/",libsdir,'arp.library')
- end
- end
-
- if (checklib("rexxarplib.library 3 0"))
- then do
- libc = libc+1
- if (userbool(copy "rexxarplib.library (release 3.0)" in.copy libsdir"?"))
- then do
- call copyrep("RexxPlus:Public/libs/",libsdir,'rexxarplib.library')
- end
- end
-
- rx_intui = '0'
- if (checklib("rx_intui.library 0 3"))
- then do
- libc = libc+1
- if (userbool(copy "rx_intui.library (release 0.3)" in.copy libsdir"?"))
- then do
- rx_intui = '1'
- call copyrep("RexxPlus:Public/libs/",libsdir,'rx_intui.library')
- end
- end
-
- if (checklib("disreq.library 0 1"))
- then do
- libc = libc+1
- if (userbool(copy "disreq.library (release 0.1)" in.copy libsdir"?"))
- then do
- call copyrep("RexxPlus:Public/libs/",libsdir,'disreq.library')
- end
- end
-
- if (checklib("rexxapp.library 0 4"))
- then do
- libc = libc+1
- if (userbool(copy "rexxapp.library (release 0.4)" in.copy libsdir"?"))
- then do
- call copyrep("RexxPlus:Public/libs/",libsdir,'rexxapp.library')
- end
- end
-
- if (checklib("screenshare.library 1 52"))
- then do
- libc = libc+1
- if (userbool(copy "screenshare.library (release 1.52)" in.copy libsdir"?"))
- then do
- libc = libc+1
- call copyrep("RexxPlus:Public/libs/",libsdir,'screenshare.library')
- end
- end
-
- if (libc = 0)
- then say "All support libraries are at current release."
- else say "Support libraries installed."
- end
-
- libi. = ''
- host. = 0
- lib.1 = "rpamigalibhost.library"
- host.1 = "1"
- lib.2 = "rpapig.library"
- lib.3 = "rpgenloc rexx port.library"
- host.3 = "1"
- lib.4 = "rpquicksortport.library"
- host.4 = "1"
- lib.5 = "rprexxarplib.library"
- lib.6 = "rprexxdb.library"
- lib.7 = "rprexxmathlib.library"
- lib.8 = "rprexxplsextnd.library"
- lib.9 = "rprexxrmf.library"
- lib.10 = "rprexxsupport.library"
- lib.11 = "rprxgen.library"
- call checklib("rx_intui.library",0,0)
- lib.12 = "rprx_intui00.library"
- if ser >= 3
- then lib.12 = "rprx_intui03.library"
- libi.12 = "rprx_intui.library"
- lib.13 = "rprx_tools.library"
- host.13 = "1"
- lib.14 = "rptoasterarexx.port.library"
- host.14 = "1"
- lib.15 = "rprexxserdev.library"
- lib.16 = "rprexxextra.library"
- lib.17 = "rprexxhs.library"
- lib.0 = 17
-
- lib = ''
- do i = 1 to lib.0
- if libi.i = '' then libi.i = lib.i
- lib = lib||'0a'x||' '||libi.i
- end
-
- lib = ''
- do i = 1 to lib.0
- if exists(libsdir||substr(libi.i,3))
- then do
- host.i = 2
- lib = lib||'0a'x||' '||libi.i
- end
- else if exists(libsdir||libi.i)
- then do
- lib = lib||'0a'x||' '||libi.i
- host.i = 2
- end
- end
-
- if lib ~= ''
- then do
- if (userbool('Install "rp" Libraries supporting those in 'libsdir"?"||lib))
- then do i = 1 to lib.0
- if host.i = 2
- then do
- host.i = 0
- call CopyRep("RexxPlus:libs/",libsdir,lib.i,libi.i)
- end
- end
- end
-
- lib = ''
- do i = 1 to lib.0
- if host.i = 1
- then do
- host.i = 2
- lib = lib||'0a'x||' '||libi.i
- end
- else host.i = 0
- end
-
- if lib ~= ''
- then do
- if (userbool('Install "rp" Libraries supporting Hosts to 'libsdir"?"||lib))
- then do i = 1 to lib.0
- if host.i = 2
- then do
- host.i = 0
- call CopyRep("RexxPlus:libs/",libsdir,lib.i,libi.i)
- end
- end
- end
-
- if (userbool("Modify startup-sequence?"))
- then do
- startup = uservalue("Enter name of startup or return for 's:startup-sequence'")
- if startup = ''
- then startup = 's:startup-sequence'
- do while ~exists(startup) & ~exists('s:'startup)
- say startup 'not found.'
- startup = uservalue("Enter name of startup")
- end
-
- if exists('s:'startup)
- then startup = 's:'startup
-
- path = ''
- assign = ''
- start = ''
- libasn = ''
-
- libdir = upper(libdir)
- if libdir ~= '' &,
- libdir ~= 'LIB:'
- then do
- if libpath
- then say "ASSIGN for LIB: may already be present."
- do while libasn = ''
- if userbool("Add Assign for LIB: to startup-sequence?")
- then do
- libwrk = strip(libdir,'t','/')
- libasn = 'ASSIGN LIB:' libwrk
- libasn = uservalue("Enter assign for LIB: or return for '"libasn"'")
- if libasn = '' then libasn = 'ASSIGN LIB:' libdir
- if ~(userbool("Are you sure "libasn"?"))
- then libasn = ''
- end
- else leave
- end
- end
-
- if makedir
- then say "PATH and ASSIGN for RPDIR: may already be present."
- do while assign = ''
- if (userbool("Add Assign for RPDIR: to startup-sequence?"))
- then do
- libwrk = strip(rpdir,'t','/')
- assign = 'ASSIGN RPDIR:' libwrk
- assign = uservalue("Enter assign for RPDIR: or return for '"assign"'")
- if assign = '' then assign = 'ASSIGN RPDIR:' rpdir
- if ~(userbool("Are you sure "assign"?"))
- then assign = ''
- end
- else leave
- end
-
- do while path = ''
- if (userbool("Add to the Path RPDIR: in the startup-sequence?"))
- then do
- path = 'PATH RPDIR:'
- path = uservalue("Enter path to add or return for '"path"'")
- if path = '' then path = 'PATH RPDIR:'
- if ~(userbool("Are you sure "path"?"))
- then path = ''
- end
- else leave
- end
-
- if rpstart = 'RPSTART'
- then if (userbool("Add RPStart for environment startup to startup-sequence?"))
- then do
- start = 'RPStart'
- end
-
- if start ~= '' | assign ~= '' | path ~= ''
- then do
- say 'Reading File for correct placement.'
- if (open('startup',startup,'A'))
- then do
- wbseek = 0
- call seek('startup',0,'B')
- do while ~eof('startup')
- lineno = seek('startup',0,'C')
- line = readln('startup')
- parse upper value line with a b c
- if a = 'LOADWB' | a = 'ENDCLI'
- then do
- wbseek = lineno
- i = 1
- line.0 = line
- do while ~eof('startup')
- line.i = readln('startup')
- i = i +1
- end
- leave
- end
-
- if a = 'ASSIGN' & b = 'LIB:'
- then do
- say line 'found.'
- say libasn 'not added.'
- libasn = ''
- end
-
- if a = 'ASSIGN' & b = 'RPDIR:'
- then do
- say line 'found.'
- say assign 'not added.'
- assign = ''
- end
-
- if a = 'PATH' & b = 'RPDIR:'
- then do
- say line 'found.'
- say assign 'not added.'
- assign = ''
- end
-
- if find('RPSTART',a) ~= 0
- then do
- say line 'found.'
- say start 'not added.'
- start = ''
- end
-
- end
-
- if wbseek~= 0 then call seek('startup',wbseek,'B')
-
- if libasn ~= ''
- then do
- if ~ commandtest(libasn)
- then do
- say libasn 'Added.'
- call writeln('startup',libasn)
- end
- else do
- say 'Error with "'libasn'".'
- say '"'libasn'" not added.'
- end
- end
-
- if assign ~= ''
- then do
- if ~ commandtest(assign)
- then do
- say assign 'Added.'
- call writeln('startup',assign)
- end
- else do
- say 'Error with "'assign'".'
- say '"'assign'" not added.'
- end
- end
-
- if path ~= ''
- then do
- if ~ commandtest(path)
- then do
- say path 'Added.'
- call writeln('startup',path)
- end
- else do
- say 'Error with "'path'".'
- say '"'path'" not added.'
- end
- end
-
- if start ~= ''
- then do
- if ~ commandtest(rpcmd||start)
- then do
- say start 'Added.'
- call writeln('startup',rpcmd||start)
- end
- else do
- say 'Error with "'start'".'
- say '"'start'" not added.'
- end
- end
-
- if wbseek ~= 0
- then do j = 0 to i-1
- call writeln('startup',line.j)
- end
- end
- end
-
- end
-
- start = 0
- if suplib
- then do
- start = showlist('P','RPControl')
- end
-
- if start
- then do
- if userbool("Restart REXX PLUS Environment?")
- then do
- say '1. enter the shell.'
- say '2. enter the command rxc.'
- say '3. enter the command rpstart.'
- end
- end
- else do
- if userbool("Start REXX PLUS Environment?")
- then do
- call commandtest('RexxPlus:RPStart')
- end
- end
-
- rexxexit:
- call writech('STDOUT','9b'x||'0;31;40m'||visible)
- say 'REXX PLUS Install Complete'
-
- exit
-
- SYNTAX:
- ERROR:
- if continue then return 1
- call writech('STDOUT','9b'x||'0;31;40m'||visible)
- say
- say errortext(rc)
- say '..........Error found at line' SIGL'...........'
- say '..............Install aborted...............'
- say
- say
- exit
-
- uservalue:
-
- parse arg a
- call writech('STDOUT',forground1)
- say a
- options prompt forground2||'(answer/Q) >> '||,
- forground1||,
- visible
- parse pull a
- call writech('STDOUT',forground1)
- b = strip(upper(a))
- if abbrev("QUIT",b,1) then signal rexxexit
- if abbrev("YES",b,1) then signal uservalue
- if abbrev("NO",b,1) then signal uservalue
-
- call writech('STDOUT',forground3||invisible)
- a = strip(a)
- return a
-
- userbool:
-
- parse arg a
- b = 1
- call writech('STDOUT',forground1)
- do while b = 1
-
- say a
- options prompt forground2||'(Y/N/Q) >> '||,
- forground1||,
- visible
- parse upper pull b
-
- call writech('STDOUT',forground3||invisible)
- b = strip(upper(b))
- if abbrev("YES",b,1) then return 1
- if abbrev("NO",b,1) then return 0
- call writech('STDOUT',forground1||visible)
- if abbrev("QUIT",b,1) then exit
- b = 1
- end
- return
-
- checklib:
- parse arg lib ver rev .
- address command
- call pragma('W',"")
-
- wrkfn = 'ram:wrkfn'pragma('I')
- 'RexxPlus:checklib >'wrkfn lib
-
- call open('work',wrkfn,'r')
- line = strip(readln('work'))
- call close('work')
- call delete(wrkfn)
-
- copy = "Copy"
- copyc = "Copy"
- if line = ''
- then if exists('libs:'lib)
- then line = '0 0' lib
- else return 1
- copy = "Replace"
- copyc = "Replac"
- parse var line ver2 rev2 libstr
- if ((ver = ver2) & (rev = rev2)) | ((ver = ver2) & (rev < rev2))
- then do
- say '"'lib '('ver2'.'rev2')" is at current release level.'
- return 0
- end
-
- call pragma('W',"WorkBench")
- return 1
-
- commandtest:
- continue = 1
- parse arg a
- signal on error
- a
- continue = 0
- return
-
- CopyRep: procedure expose forground1 forground2 forground3 forground0 visible invisible clone
- continue = 1
- parse arg dir1,dir2,fn1,fn2
- if fn2 = '' then fn2 = fn1
- if exists(dir2||fn2)
- then say 'Replacing' dir2||fn2 'with new' fn2'....'
- else say 'Copying' fn2 'to' dir2||fn2'....'
- call IssueCopy
- if rc ~= 0 then say forground2||'Error copying file!!'forground3||invisible
- return
-
- IssueCopy:
- 'COPY "'dir1||fn1'" to "'dir2||fn2'"' clone
- return
-
- CheckCopy: procedure expose forground1 forground2 forground3 forground0 visible invisible
- parse arg dir,fn
- if (exists(dir||fn))
- then return(userbool("Replace" dir||fn "with new" fn"?"))
- else return(userbool("Copy" fn "Command to" dir"?"))
-
-